<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>箭头函数</title>
</head>
<body>
<script>
    let arr = [1, 2, 3, 4, 5];
    let newArr = arr.filter(function (item, index) {
        return item > 3
    })
    console.log(newArr);//[4,5];
    // let newArr2 = arr.filter((item)=>{
    //     return item > 3
    // });
    //1.当箭头函数中只有一个参数的时候,可以省略形参参数的括号
    //2.当箭头函数中只有一句代码的时候 可以直接省略{}
    //3.当箭头函数中有切只有一句代码的时候 可以省略return 箭头函数会直接的把这句代码的执行结果当作函数返回值
    let newArr2 = arr.filter(item => item > 3);

    //箭头函数 ES6中
    //后端语言 C++ php java 都有箭头函数 lamda(λ)表达式  a(阿尔法) β λ
    // console.log("λ","入")

    // function sum(a,b){
    //     return a+b
    // }

    // public sum(a:int,b:int):int ->{
    //     return a+b
    // }

    // TS->TypeScript <=> Javascript
    //Javascript 弱类型的语言 ->TypeScript是js的超集
    //后端语言 强类型
    let a = "1";
    a = 1;
    a = true;
    a = a + 1
    //后端语言
    // let a: string = "1"; //error int数字
    // a = 1;
    // a = true;
    // a = a + 1

    //function的拓展
    //默认值
    function sum1(a, b) {
        a = a || 0;
        b = b || 0;
        return a + b
    }

    //ES6默认值
    // function sum(a = 0, b) {
    //     return a + b
    // }
    // console.log(sum(null,123));
    // console.log(sum(undefined,123));
    function sum(b, a = 0) {
        return a + b
    }
    //当参数为多个的时候,拥有默认值的参数习惯上去放到最后一个
    console.log(sum(123));

    // null 和 undefined
    // 空      未定义
    //
</script>
</body>
</html>